package demo.day09

fun main() {
    // day09.ResponseResultBean@7a0ac6e3 会调用any的toString函数 只是一个标准
    // 之所以这样打印是windows的实现
    println(ResponseResultBean("requestSuccess", 200, "请求返回的数据"))
    //ResultBean(msg=requestSuccess, code=200, data=请求返回的数据) 也是继承any
    // 但是额外重写了toString方法
    println(ResultBean("requestSuccess", 200, "请求返回的数据"))

    // == 值的比较 相当于java的equals === 引用对象比较
    // 讲道理 值是一样的 应该会打印true才对  但是对象继承自any 默认会实现equals方法 会默认去比较引用
    // 就导致结果为false 数据类生成 更丰富
    println(ResponseResultBean("requestSuccess", 200, "请求返回的数据") ==
            ResponseResultBean("requestSuccess", 200, "请求返回的数据"))

    // 数据类的重写了 any 的equals方法 会进行一个一个值的比较 所以对打印true
    println(ResultBean("requestSuccess", 200, "请求返回的数据") ==
            ResultBean("requestSuccess", 200, "请求返回的数据"))
}


// 普通类
class ResponseResultBean(var msg: String, var code: Int, var data: String)
// set get 构造函数

// 数据类
data class ResultBean(var msg: String, var code: Int, var data: String)
// set get 构造函数 解构操作 copy toString hashCode equals
